package com.sltx.erro;

//包装器业务异常类实现
//（含义：BusinessException 和对应我们刚才定义的 EmBusinessError 他们都共同继承了 CommonError的这个方法
// 以至于外部不仅可以通过 new EmBusinessError 或者 new BusinessException 都可以由errorCode 和 errorMsg的组装定义
// 并且需要共同实现setErrMsg的方法，可以用于将 EmBusinessError中原本定义的 setErrMsg（）方法覆盖掉）

public class BusinessException extends Exception  implements CommonError {

    //内部常关联一个 CommonError
    private CommonError commonError;

    //直接接收EmBusinessError的传参，用于构造业务异常
    public BusinessException(CommonError commonError){
        super();
        this.commonError = commonError;
    }

    //接收自定义ErrorMsg的方式构造业务异常
    public BusinessException (CommonError commonError,String errMsg){
        super();
        this.commonError = commonError;
        this.setErrMsg(errMsg);
    }
    @Override
    public int getErrorCode() {
        return this.commonError.getErrorCode();
    }

    @Override
    public String getErrorMsg() {
        return this.commonError.getErrorMsg();
    }

    @Override
    public CommonError setErrMsg(String errMsg) {
        return this.commonError.setErrMsg(errMsg);
    }
}
